# 从 Flask 库中导入 Flask 类和 render_template 函数
# Flask 类用于创建 Flask 应用实例
# render_template 函数用于渲染 HTML 模板
from flask import Flask, render_template
# 从自定义的 dbHelper 模块中导入 DBHelper 类
# 该类用于封装与数据库交互的操作
from dbHelper import DBHelper

# 创建一个 Flask 应用实例
# __name__ 是 Python 中的内置变量，表示当前模块的名称
# template_folder='template' 指定了模板文件所在的文件夹为 'template'
app = Flask(__name__, template_folder='template')

# 创建 DBHelper 类的一个实例，用于后续的数据库操作
db = DBHelper()

# 使用 app.route 装饰器定义一个路由，该路由处理根路径 '/' 的请求
# methods=["GET", "POST"] 表示该路由支持 GET 和 POST 请求方法
@app.route("/", methods=["GET", "POST"])
def show():
    # 使用 with 语句管理数据库游标，确保游标在使用完毕后自动关闭
    # db.cursor() 调用 DBHelper 类的 cursor 方法，返回一个数据库游标对象
    with db.cursor() as cursor:
        # 定义一个 SQL 查询语句，用于从 upmoney 表中查询所有记录
        sql = "select * from upmoney"
        # 调用 DBHelper 类的 queAll 方法，执行 SQL 查询并获取所有结果
        # cursor 是数据库游标对象，用于执行 SQL 语句
        result = db.queAll(cursor, sql)
        # 使用 render_template 函数渲染名为 'proList.html' 的模板文件
        # 并将查询结果 result 以 proList 变量的形式传递给模板
        return render_template("proList.html", proList=result)

# 以下代码确保该脚本作为主程序运行时才会执行 Flask 应用的启动代码
if __name__ == "__main__":
    # 调用 Flask 应用实例的 run 方法启动应用
    # debug=True 开启调试模式，方便开发过程中发现和解决问题
    app.run(debug=True)